package com.ruoyi.business.service;

import com.ruoyi.business.bo.HcxMerchantTypeAddBo;
import com.ruoyi.business.bo.HcxMerchantTypeEditBo;
import com.ruoyi.business.bo.HcxMerchantTypeQueryBo;
import com.ruoyi.business.vo.HcxMerchantTypeVo;
import com.ruoyi.common.core.domain.TreeSelect;
import com.ruoyi.common.core.domain.entity.HcxMerchantType;
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;

import java.util.Collection;
import java.util.List;

/**
 * 商家分类Service接口
 *
 * @author wsdz
 * @date 2022-08-17
 */
public interface IHcxMerchantTypeService extends IServicePlus<HcxMerchantType> {

    List<HcxMerchantType> selectMerchantTypetList(HcxMerchantType type);

    /**
     * 查询单个
     *
     * @return
     */
    HcxMerchantTypeVo queryById(Long id);


    /**
     * 查询列表
     */
    List<HcxMerchantTypeVo> queryList(HcxMerchantTypeQueryBo bo);

    /**
     * 根据新增业务对象插入商家分类
     *
     * @param bo 商家分类新增业务对象
     * @return
     */
    Boolean insertByAddBo(HcxMerchantTypeAddBo bo);

    /**
     * 根据编辑业务对象修改商家分类
     *
     * @param bo 商家分类编辑业务对象
     * @return
     */
    Boolean updateByEditBo(HcxMerchantTypeEditBo bo);

    /**
     * 校验并删除数据
     *
     * @param ids     主键集合
     * @param isValid 是否校验,true-删除前校验,false-不校验
     * @return
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 导入数据
     *
     * @param hcxMerchantTypeList 排污口水质数据
     * @return String
     */
    String importHcxMerchantType(List<HcxMerchantTypeVo> hcxMerchantTypeList);

    /**
     * 构建前端所需要下拉树结构
     *
     * @param merchantTypes 商品分类列表
     * @return 下拉树结构列表
     */
    List<TreeSelect> buildMerchantTypeTreeSelect(List<HcxMerchantType> merchantTypes);


    List<HcxMerchantType> buildMerchantTypeTree(List<HcxMerchantType> merchantTypes);


}
